#if !defined(ximera_audio_isounddata_hpp)
#define ximera_audio_isounddata_hpp

// -----------------------------------------------------------

#include <ximera/types.hpp>
#include <ximera/enum.hpp>
#include <ximera/common/sharedptr.hpp>

namespace ximera { namespace audio
{
    XIMERA_ENUM(ChannelMode)
        Auto,
        Mono,
        Stereo
    XIMERA_ENUM_END(ChannelMode);

    XIMERA_ENUM(DataMode)
        Auto,
        Bits8,
        Bits16
    XIMERA_ENUM_END(DataMode);

    class XIMERA_API ISoundData
    {
    public:
        virtual ~ISoundData() {}        

        virtual DataMode dataMode() const = 0;
        virtual void dataMode(DataMode mode) = 0;

        virtual ChannelMode channelMode() const = 0;
        virtual void channelMode(ChannelMode mode) = 0;
    };

    typedef SharedPtr<ISoundData> ISoundDataPtr;
}}

// -----------------------------------------------------------

#endif
